package com.fdb.efp.limit.service.dao;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.fdb.efp.limit.service.domain.LmtShowInfo;
import com.fdb.efp.limit.service.vo.LmtShowInfoVO;

/**
 * <p>
 * 手机银行首页展示信息表的DAO类
 * </p>
 * @author szbd
 * @createDate 2018-09-18 11:17:59
 */
public interface LmtShowInfoDao {
    
    /**
     * 插入手机银行首页展示信息表记录
     * @param lmtShowInfo
     * @return
     */
    public int insertLmtShowInfo(LmtShowInfo lmtShowInfo);
    
    /**
     * 根据主键删除手机银行首页展示信息表记录
     * @param lmtShowInfo
     * @return
     */
    public int deleteLmtShowInfoByPk(LmtShowInfo lmtShowInfo);
    
    /**
     * 根据主键更新手机银行首页展示信息表记录
     * @param lmtShowInfo
     * @return
     */
    public int updateLmtShowInfoByPk(LmtShowInfo lmtShowInfo);
    
    /**
     * 根据主键查询手机银行首页展示信息表记录
     * @param lmtShowInfo
     * @return
     */
    public LmtShowInfo queryLmtShowInfoByPk(LmtShowInfo lmtShowInfo);
    
    /**
     * 条件查询单笔手机银行首页展示信息表记录
     * @param lmtShowInfo
     * @return
     */
    public LmtShowInfo querySingleLmtShowInfoByCondition(LmtShowInfo lmtShowInfo);
    
    /**
     * 查询手机银行首页展示信息表记录
     * @param lmtShowInfo
     * @return
     */
    public List<LmtShowInfo> queryLmtShowInfoByCondition(LmtShowInfoVO lmtShowInfoVo);
    
    /**
     * 条件分页查询手机银行首页展示信息表记录
     * @param lmtShowInfo
     * @return
     */
    public List<LmtShowInfo> queryLmtShowInfoByConditionByPage(LmtShowInfoVO lmtShowInfoVo);
    
    /**
     * 查询本人所属的记录
     * @param lmtShowInfoVo
     * @return
     */
    public List<LmtShowInfo> queryAllOwnerByPage(LmtShowInfoVO lmtShowInfoVo);
    
    /**
     * 查询本机构的记录
     * @param lmtShowInfoVo
     * @return
     */
    public List<LmtShowInfo> queryAllCurrOrgByPage(LmtShowInfoVO lmtShowInfoVo);
    
    /**
     * 查询本机构及下属机构的记录
     * @param lmtShowInfoVo
     * @return
     */
    public List<LmtShowInfo> queryAllCurrDownOrgByPage(LmtShowInfoVO lmtShowInfoVo);
    
    /**
     * 根据授信申请流水号更新
     * @param lmtShowInfo
     * @return
     */
    public int updateShowInfoByLmtSerno(LmtShowInfo lmtShowInfo);
    
    /**
     * 根据预授信流水号更新
     * @param lmtShowInfo
     * @return
     */
    public int updateLmtShowInfoByPreSerno(LmtShowInfo lmtShowInfo);
    
    /**
     * 根据授信申请流水号列表更新是否允许提额
     * @param incLmtInd
     * @param lmtSernos
     * @return
     */
    public int updateIncLmtIndByLmtSernos(@Param("incLmtInd") String incLmtInd, @Param("lmtSernos") List<String> lmtSernos);
    
    /**
     * 额度冻结，不允许提额
     * @param lmtSernos
     * @return
     */
    public int updateIncLmtIndIfLimitFreeze(@Param("lmtSernos") List<String> lmtSernos);

    /**
     * 根据预授信流水号更新是否展示标识
     * @param showInd
     * @param preSernos
     * @return
     */
    public int updateShowIndByPreSernos(@Param("showInd") String showInd, @Param("preSernos") List<String> preSernos);
    
    /**
     * 把预授信正式表数据插入到lmt_show_info表
     * @param batchSerno
     * @return
     */
    public int insertShowInfoFromPrelist(@Param("batchSerno") String batchSerno, @Param("time") String time);
}